package com.hmall.search.service;

import com.hmall.common.dto.PageDTO;
import com.hmall.search.pojo.ItemDoc;
import com.hmall.search.pojo.RequestParam;

import java.util.List;
import java.util.Map;

public interface SearchService {

    /**
     * 搜索栏自动补全功能
     */
    List<String> getSuggestions(String key);


    /**
     * 过滤项聚合功能
     */
    Map<String, List<String>> getFilters(RequestParam params);


    /**
     * 实现基本搜索功能
     * - 关键字搜索
     * - 分类、品牌、价格过滤
     * - 排序
     * - 分页
     * - 高亮
     * - 竞价排名
     */
    PageDTO<ItemDoc> search(RequestParam params);

    /**
     * 监听商品新增或修改的业务
     * @param id item的id
     */
    void insertById(Long id);

    /**
     * 监听商品删除的业务
     */
    void deleteById(Long id);
}
